///**
//**
//** Copyright 2007, The Android Open Source Project
//**
//** Licensed under the Apache License, Version 2.0 (the "License");
//** you may not use this file except in compliance with the License.
//** You may obtain a copy of the License at
//**
//**     http://www.apache.org/licenses/LICENSE-2.0
//**
//** Unless required by applicable law or agreed to in writing, software
//** distributed under the License is distributed on an "AS IS" BASIS,
//** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//** See the License for the specific language governing permissions and
//** limitations under the License.
//*/
//package com.showde.shoppingmall.activity;
//
//import com.android.packageinstaller.R;
//
//import android.app.Activity;
//import android.app.AlertDialog;
//import android.app.Dialog;
//import android.content.DialogInterface;
//import android.content.Intent;
//import android.content.DialogInterface.OnCancelListener;
//import android.content.pm.ApplicationInfo;
//import android.content.pm.PackageManager;
//import android.content.pm.PackageParser;
//import android.content.pm.PackageManager.NameNotFoundException;
//import android.net.Uri;
//import android.os.Bundle;
//import android.provider.Settings;
//import android.util.Log;
//import android.view.View;
//import android.view.Window;
//import android.view.View.OnClickListener;
//import android.widget.AppSecurityPermissions;
//import android.widget.Button;
//import android.widget.LinearLayout;
//
///**
// * This activity is launched when a new application is installed via side loading
// * The package is first parsed and the user is notified of parse errors via a dialog.
// * If the package is successfully parsed, the user is notified to turn on the install unknown
// * applications setting. A memory check is made at this point and the user is notified of out
// * of memory conditions if any. If the package is already existing on the device, 
// * a confirmation dialog (to replace the existing package) is presented to the user.
// * Based on the user response the package is then installed by launching InstallAppConfirm
// * sub activity. All state transitions are handled in this activity
// */
//public class PackageInstallerHideActivity extends Activity{
//    private static final String TAG = "PackageInstaller";
//    private Uri mPackageURI;    
//    private boolean localLOGV = false;
//    PackageManager mPm;
//    private PackageParser.Package mPkgInfo;
//
//    // ApplicationInfo object primarily used for already existing applications
//    private ApplicationInfo mAppInfo = null;
//
//    // View for install progress
//    View mInstallConfirm;
//    // Buttons to indicate user acceptance
//    private Button mOk;
//    private Button mCancel;
//
//    // Dialog identifiers used in showDialog
//    private static final int DLG_BASE = 0;
//    private static final int DLG_REPLACE_APP = DLG_BASE + 1;
//    private static final int DLG_UNKNOWN_APPS = DLG_BASE + 2;
//    private static final int DLG_PACKAGE_ERROR = DLG_BASE + 3;
//    private static final int DLG_OUT_OF_SPACE = DLG_BASE + 4;
//    private static final int DLG_INSTALL_ERROR = DLG_BASE + 5;
//
//    private void startInstallConfirm() {
//    	
//    	Intent newIntent = new Intent();
//        newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO,
//                mPkgInfo.applicationInfo);
//        newIntent.setData(mPackageURI);
//        newIntent.setClass(this, InstallAppProgress.class);
//        String installerPackageName = getIntent().getStringExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME);
//        if (installerPackageName != null) {
//            newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, installerPackageName);
//        }
//        if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI);
//        startActivity(newIntent);
//        finish();
//    	
////        LinearLayout permsSection = (LinearLayout) mInstallConfirm.findViewById(R.id.permissions_section);
////        LinearLayout securityList = (LinearLayout) permsSection.findViewById(
////                R.id.security_settings_list);
////        boolean permVisible = false;
////        if(mPkgInfo != null) {
////            AppSecurityPermissions asp = new AppSecurityPermissions(this, mPkgInfo);
////            if(asp.getPermissionCount() > 0) {
////                permVisible = true;
////                securityList.addView(asp.getPermissionsView());
////            }
////        }
////        if(!permVisible){
////            permsSection.setVisibility(View.INVISIBLE);
////        }
////        mInstallConfirm.setVisibility(View.VISIBLE);
////        mOk = (Button)findViewById(R.id.ok_button);
////        mCancel = (Button)findViewById(R.id.cancel_button);
////        mOk.setOnClickListener(this);
////        mCancel.setOnClickListener(this);
//    }
//
//    private void initiateInstall() {
//        String pkgName = mPkgInfo.packageName;
//        // Check if there is already a package on the device with this name
//        // but it has been renamed to something else.
//        String[] oldName = mPm.canonicalToCurrentPackageNames(new String[] { pkgName });
//        if (oldName != null && oldName.length > 0 && oldName[0] != null) {
//            pkgName = oldName[0];
//            mPkgInfo.setPackageName(pkgName);
//        }
//        // Check if package is already installed. display confirmation dialog if replacing pkg
//        try {
//            mAppInfo = mPm.getApplicationInfo(pkgName,
//                    PackageManager.GET_UNINSTALLED_PACKAGES);
//        } catch (NameNotFoundException e) {
//            mAppInfo = null;
//        }
//        if (mAppInfo == null) {
//            startInstallConfirm();
//        } else {
//            if(localLOGV) Log.i(TAG, "Replacing existing package:"+
//                    mPkgInfo.applicationInfo.packageName);
//            //showDialogInner(DLG_REPLACE_APP);
//            startInstallConfirm();
//        }
//    }
//    
//    @Override
//    protected void onCreate(Bundle icicle) {
//        super.onCreate(icicle);
//        //get intent information
//        final Intent intent = getIntent();
//        mPackageURI = intent.getData();
//        mPm = getPackageManager();
//        mPkgInfo = PackageUtil.getPackageInfo(mPackageURI);
//        
//        // Check for parse errors
//        if(mPkgInfo == null) {
//            Log.w(TAG, "Parse error when parsing manifest. Discontinuing installation");
//            // showDialogInner(DLG_PACKAGE_ERROR);
//            return;
//        }
//        
//        //set view
//        requestWindowFeature(Window.FEATURE_NO_TITLE);
//        setContentView(R.layout.install_start);
//        mInstallConfirm = findViewById(R.id.install_confirm_panel);
//        mInstallConfirm.setVisibility(View.INVISIBLE);
//        PackageUtil.AppSnippet as = PackageUtil.getAppSnippet(this,
//                mPkgInfo.applicationInfo, mPackageURI);
//        PackageUtil.initSnippetForNewApp(this, as, R.id.app_snippet);
//       //check setting
//        if(!isInstallingUnknownAppsAllowed()) {
//            //ask user to enable setting first
//            //showDialogInner(DLG_UNKNOWN_APPS);
//            return;
//        }
//        initiateInstall();
//    }
//    
//}
